/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package hotelinteligente.vista;

import hotelinteligente.Dispositivos;
import java.awt.Graphics;
import java.awt.Image;
import java.util.ArrayList;
import java.util.Iterator;

/**
 *
 * @author vero
 */
public class PisoDibujable implements Dibujable {

    private String nombre;
    private Image imagen= java.awt.Toolkit.getDefaultToolkit().getImage(getClass().getResource(Dispositivos.IMAGEN_PISO));
    private ArrayList<DispositivoDibujable> dispositivos;

    public PisoDibujable(String name) {
        this.nombre= name;
        dispositivos= new ArrayList<DispositivoDibujable>();
    }

    @Override
    public void draw(Graphics g) {
        g.drawImage(imagen, 0, 0, null);
        for(Iterator<DispositivoDibujable> it= dispositivos.iterator(); it.hasNext();) {
            DispositivoDibujable device= it.next();
            if(device != null)
                device.draw(g);
        }
    }

    public String getNombre() {
        return nombre;
    }

    public void agregarDispositivo(String id, String ruta, int x, int y) {
        this.dispositivos.add(new DispositivoDibujable(id, ruta, x, y));
    }

    public Iterator<DispositivoDibujable> getIteratorDispositivosDibujables() {
        return this.dispositivos.iterator();
    }

    public DispositivoDibujable getDispositivoDibujable(String id) {
        for(Iterator<DispositivoDibujable> it= this.dispositivos.iterator(); it.hasNext();) {
           DispositivoDibujable device= it.next();
            if(device.getDeviceId().equals(id))
                return device;
        }
        return null;
    }

    public int getCantidadDispositivos() {
        return dispositivos.size();
    }

    public int getCantidadDibujados() {
        int cantidad= 0;
        for(Iterator<DispositivoDibujable> it= this.dispositivos.iterator(); it.hasNext();) {
            DispositivoDibujable device= it.next();
            if(device.getDibujar())
                cantidad++;
        }
        return cantidad;
    }
}
